Resource-oriented Architecture
   HOME

TheInfoList



OR:

In software engineering, a resource-oriented architecture (ROA) is a style of software architecture and programming paradigm for supportive designing and developing software in the form of Internetworking of resources with " RESTful" interfaces. These resources are software components (discrete pieces of code and/or
data structure In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
s) which can be
reused Reuse is the action or practice of using an item, whether for its original purpose (conventional reuse) or to fulfill a different function (creative reuse or repurposing). It should be distinguished from recycling, which is the breaking down of us ...
for different purposes. ROA design principles and guidelines are used during the phases of
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
and
system integration System integration is defined in engineering as the process of bringing together the component sub- systems into one system (an aggregation of subsystems cooperating so that the system is able to deliver the overarching functionality) and ensuring ...
. REST, or Representational State Transfer, describes a series of architectural constraints that exemplify how the web's design emerged. Various concrete implementations of these ideas have been created throughout time, but it has been difficult to discuss the REST architectural style without blurring the lines between actual software and the architectural principles behind it. In Chapter 5 of his thesis, Roy Fielding documents how the World Wide Web is designed to be constrained by the REST series of limitations. These are still fairly abstract and have been interpreted in various ways in designing new frameworks, systems, and websites. In the past, heated exchanges have been made about whether
RPC RPC may refer to: Science and technology * Rational polynomial coefficient * Reactive Plastic Curtain, a carbon-dioxide-absorbing device used in some rebreather breathing sets * Regional Playback Control, a regional lockout technology for DVDs * ...
-style REST architectures are RESTful.Chapter 5 of Fielding's dissertation i
"Representational State Transfer (REST)"


Guidelines for clarification

The Resource Oriented Architecture, as documented by Leonard Richardson and Sam Ruby in their 2007 book ''RESTful Web Services'', gives concrete advice on specific technical details. Naming these collections of guidelines "Resource Oriented Architecture" may allow developers to discuss the benefits of an architecture in the context of ROA. Some guidelines are already common within the larger REST communities such as: that an application should expose many URIs, one for each resource; and that processing cookies representing IDs in a server-side session is not RESTful.


Existing frameworks

Richardson and Ruby also discuss many software frameworks that provide some or many features of the ROA. These include /db, Django, TurboGears, Flask, EverRest, JBoss RESTEasy, JBoss Seam, Spring, Apache Wink, Jersey, NetKernel, Recess, Ruby on Rails,
Symfony Symfony is a free and open-source PHP web application framework and a set of reusable PHP component libraries. It was published as free software on October 18, 2005, and released under the MIT license. Goal Symfony aims to speed up the creati ...
, Yii2, Play Framework, and API Platform.


Web infrastructure

While REST is a set of architectural guidelines applicable to various types of computing infrastructures, Resource Oriented Architecture (ROA) is only coupled with the web. This architecture is therefore useful mostly to businesses that consider the web as the computing/publishing platform of choice. The power of the web seems to mostly reside in its ability to lower the barriers to entry for human users who may not be highly trained in using computing machinery. As such, the web widens the market reach for any business that decides to publish some of its content in electronic format. On the web, such published content is regarded as a web resource.


References


Bibliography

* *
{{Software engineering Software architecture